import xtpzService from '@/api/xtpz'
import { ElMessage } from 'element-plus'
import TreeUtil from './tree'
export const getFldm = async (lbbm: string) => {
  let newArr = []
  const source = sessionStorage.getItem('fldmList')
  if (source) {
    const fldmList = JSON.parse(source)
    newArr = (await fldmList[lbbm]) || []
  }
  return newArr
}

const groupBy = (array: any[], key: string) => {
  const groups: any = {}
  // 先按照key进行分组
  array.forEach((item) => {
    const group = item[key]
    groups[group] = groups[group] || []
    groups[group].push(item)
  })
  // 组装树形结构
  Object.keys(groups).forEach((group) => {
    const data = TreeUtil.getTreeData(groups[group], 'dm', 'fdm')
    groups[group] = data
  })
  return groups
}
export const getFldmList = () => {
  const params = {
    lbbm: '',
  }
  xtpzService
    .queryFldm(params)
    .then((res) => {
      const fldmObj = groupBy(res.data, 'lbbm')
      // 缓存到sessionStorage
      window.sessionStorage.setItem('fldmList', JSON.stringify(fldmObj))
    })
    .catch((err) => {
      !err.isError && ElMessage.warning(err.message)
    })
}

// gd001	文件类型
// gd002	声像类型
// gd003	文件来源
// gd004	退改类型
// gd005	档案接收状态
// gd006	密级
// gd007	要号类型
// gd008	档案导出状态
// gd009	是否存在纸质案卷
// gd010	退改案卷类型
// gd011	检测状态
// gd012	目录类型
// gd013	未成年人封存
// gd014	归档状态
// gd015	退改状态
// gd016	退改阶段
// gd017	是否存在音视频
// gd018	归档阶段
// gd019	归档审核状态
// gd020	保管期限
// gd021	音视频类别
// gd022	案卷类型
// gd023	签名方式
// gd024	归档范围案卷类别
// gd025	案件类别
// gd032  性别
// gd033  国籍
// 0009  人员类型
// gd034  地区代码
// gd035    民族
// gd9910   证件类型
// gd039  批量修改字段
// gd040  批量修改字段方式
// gd043  借阅方式
// gd044  借阅目的
// gd048  借阅类型分类代码
// gd049  筛选分类代码
// gd051  归档时效监督报表类型
// gd056  报表类型分类代码
